<?php

class ActivityController extends Controller
{
	/**
	 * @var string the default layout for the views. Defaults to '//layouts/column2', meaning
	 * using two-column layout. See 'protected/views/layouts/column2.php'.
	 */
	public $layout='//layouts/main';

	/**
	 * @return array action filters
	 */
	public function filters()
	{
		return array(
			'accessControl', // perform access control for CRUD operations
			//'postOnly + delete', // we only allow deletion via POST request
		);
	}

	/**
	 * Specifies the access control rules.
	 * This method is used by the 'accessControl' filter.
	 * @return array access control rules
	 */
	public function accessRules()
	{
		return array(
			array('allow',  // allow all users to perform 'index' and 'view' actions
				'actions'=>array('index','view'),
				'users'=>array('*'),
			),
			array('allow', // allow authenticated user to perform 'create' and 'update' actions
				'actions'=>array('create','update','setAddress'),
				'users'=>array('@'),
			),
			array('allow', // allow admin user to perform 'admin' and 'delete' actions
				'actions'=>array('admin','delete'),
				'users'=>array('@'),
			),
			array('deny',  // deny all users
				'users'=>array('*'),
			),
		);
	}

	/**
	 * Displays a particular model.
	 * @param integer $id the ID of the model to be displayed
	 */
	public function actionView($id)
	{
		$this->render('view',array(
			'model'=>$this->loadModel($id),
		));
	}

	/**
	 * Creates a new model.
	 * If creation is successful, the browser will be redirected to the 'view' page.
	 */
	public function actionCreate()
	{
		$model=new Activity;

		// Uncomment the following line if AJAX validation is needed
		// $this->performAjaxValidation($model);

		if(isset($_POST['Activity']))
		{
			$user_id = yii::app()->user->id;
			$model->attributes=$_POST['Activity'];
			$model->is_delete = 0;
			$model->crate_time = date('Y-m-d h:i:s');
			$model->crate_user = yii::app()->user->name;
			$model->user_id = yii::app()->user->id;
			//减去相应的礼品数量
			$sqlquery="select remaining_number from zy_gift_remaining_number where partners_id='".$user_id."'";
			$rs = yii::app()->db->createCommand($sqlquery)->queryAll();
			if($rs[0]['remaining_number'] < $model->provide_gift_number){
				//1.为数量不足
				$this->redirect(array('create','state'=>1));
			}
			if($model->save()){
				$activity_id = $model->attributes['activity_id'];
				$number = $rs[0]['remaining_number'] - $model->provide_gift_number;
				//更改礼品数量
				$updateSql="update zy_gift_remaining_number set `remaining_number` ='".$number."' where partners_id='".$user_id."'";
				yii::app()->db->createCommand($updateSql)->execute();
				//密码过期时间 改为活动结束时间
				//获取今天的时间信息
				/*$Y=date(Y);
				$m=date(m);
				$d=date(d);
				$out_date1=date( "Y-m-d", mktime(0,0,0,$m,$d+7,$Y) );//一周后	*/
				
				//生成随机密码
				for($j=0;$j<$model->provide_gift_number; $j++){
				
					//获取6位数密码
					$passwrd = Activity::model()->getPasswrd();
					
					$sqls="insert into zy_gift_password (activity_id,suser_id,password,state,time,crate_time,crate_user) " .
							"value ('$activity_id',$user_id,'$passwrd',0,'$model->activity_out_time','$model->crate_time','$model->crate_user')";
					$result = yii::app()->db->createCommand($sqls)->execute();
					unset($passwrd); //清空变量
				}
				
				$this->redirect(array('admin','id'=>$model->activity_id));
			}
		}
		$this->render('create',array('model'=>$model,));
	}

	/**
	 * Updates a particular model.
	 * If update is successful, the browser will be redirected to the 'view' page.
	 * @param integer $id the ID of the model to be updated
	 */
	public function actionUpdate($id)
	{
		$model=$this->loadModel($id);

		// Uncomment the following line if AJAX validation is needed
		// $this->performAjaxValidation($model);

		if(isset($_POST['Activity']))
		{
			$model->attributes=$_POST['Activity'];
			$model->update_time = date('Y-m-d h:i:s');
			$model->update_user = yii::app()->user->name;
			if($model->save())
				$this->redirect(array('admin','id'=>$model->activity_id));
		}

		$this->render('update',array(
			'model'=>$model,
		));
	}

	/**
	 * Deletes a particular model.
	 * If deletion is successful, the browser will be redirected to the 'admin' page.
	 * @param integer $id the ID of the model to be deleted
	 */
	public function actionDelete($id)
	{
		$this->loadModel($id)->delete();

		// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
		if(!isset($_GET['ajax']))
			$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
	}

	/**
	 * Lists all models.
	 */
	public function actionIndex()
	{
		$dataProvider=new CActiveDataProvider('Activity');
		$this->render('index',array(
			'dataProvider'=>$dataProvider,
		));
	}

	/**
	 * Manages all models.
	 */
	public function actionAdmin()
	{
		$model=new Activity('search');
		$model->unsetAttributes();  // clear any default values
		if(isset($_GET['Activity']))
			$model->attributes=$_GET['Activity'];

		$this->render('admin',array(
			'model'=>$model,
		));
	}

	/**
	 * Returns the data model based on the primary key given in the GET variable.
	 * If the data model is not found, an HTTP exception will be raised.
	 * @param integer $id the ID of the model to be loaded
	 * @return Activity the loaded model
	 * @throws CHttpException
	 */
	public function loadModel($id)
	{
		$model=Activity::model()->findByPk($id);
		if($model===null)
			throw new CHttpException(404,'The requested page does not exist.');
		return $model;
	}

	/**
	 * Performs the AJAX validation.
	 * @param Activity $model the model to be validated
	 */
	protected function performAjaxValidation($model)
	{
		if(isset($_POST['ajax']) && $_POST['ajax']==='activity-form')
		{
			echo CActiveForm::validate($model);
			Yii::app()->end();
		}
	}
	
	public function actionSetAddress($id){
	
		$model=$this->loadModel($id);

		// Uncomment the following line if AJAX validation is needed
		// $this->performAjaxValidation($model);

		if(isset($_POST['Activity']))
		{
			$model->attributes=$_POST['Activity'];
			
			$num = '';
			for($i=0; $i<count($model->address1);$i++){
				if(count($model->address1)>1){
					$num.= $model->address1[$i].",";
				}else{
					$num = $model->address1[$i];
				}
			}
			//去掉字符串最后一个逗号
			$model->address1 = substr($num,0,strlen($num)-1);
			
			$model->update_time = date('Y-m-d h:i:s');
			$model->update_user = yii::app()->user->name;
			if($model->save())
				$this->redirect(array('admin','id'=>$model->activity_id));
		}

		$this->render('setAddress',array(
			'model'=>$model,
		));
	
	}
	
}